#include "lvgl/lvgl.h"
#include "lvgl/demos/lv_demos.h"
#include "lv_drivers/display/fbdev.h"
#include "lv_drivers/indev/evdev.h"
#include <unistd.h>
#include <pthread.h>
#include <time.h>
#include <sys/time.h>

#include "./../../inc/homePage.h"
#include "./../../inc/calculator.h"
#include "./../../inc/page_manager.h"
#include "./../../inc/login.h"
#include "./../../inc/album.h"

lv_obj_t * home_page = NULL;

int ui_taskbar_color    = WHITE_MODE;    // 0:白色 1:黑色
int ui_status_bar_color = WHITE_MODE;    // 0:白色 1:黑色
int labal_color         = WHITE_MODE;    // 0:白色 1:黑色
int ui_mode             = SHOW_ALL_MODE; // 0:全部显示 1:隐藏头像

void show_homePage(void)
{
    ui_mode             = SHOW_ALL_MODE;
    ui_taskbar_color    = WHITE_MODE;
    ui_status_bar_color = WHITE_MODE;
    labal_color         = WHITE_MODE;

    // 创建新的主页
    home_page = lv_obj_create(NULL);
    lv_obj_set_size(home_page, 800, 480);
    // lv_obj_clean(home_page);

    // LV_IMG_DECLARE(bg1);
    lv_obj_t * img = lv_img_create(home_page);

    lv_img_set_src(img, "S:res/img/car_bg.png");
    lv_obj_set_size(img, 800, 480);

    show_status_bar(home_page);

    // 初始化历史记录
    if(history_index == -1) {
        history_index   = 0;
        page_history[0] = home_page;
        lv_scr_load(home_page);
    } else {
        navigate_to(home_page);
    }

    // lv_obj_add_event_cb(home_page, gesture_event_cb, LV_EVENT_ALL, NULL); // 添加手势事件
    // lv_obj_add_flag(home_page, LV_OBJ_FLAG_CLICKABLE);      // 启用点击事件
    // lv_obj_add_flag(home_page, LV_OBJ_FLAG_GESTURE_BUBBLE); // 启用手势检测

    show_taskbar(home_page); // 显示任务栏
    show_card(home_page);    // 显示卡片
}

// // 手势事件回调函数（处理左滑/右滑）
// static void gesture_event_cb(lv_event_t * e)
// {
//     lv_event_cb_t * code = lv_event_get_target(e);
//     printf("code: %d\n", code);
//     if(code == LV_EVENT_GESTURE) {
//         lv_obj_t * target = lv_event_get_target(e);

//         // 获取手势方向
//         lv_dir_t dir = lv_indev_get_gesture_dir(lv_indev_get_act());

//         // 判断左滑/右滑
//         if(dir == LV_DIR_LEFT) {
//             printf("检测到左滑\n");
//         } else if(dir == LV_DIR_RIGHT) {
//             printf("检测到右滑\n");
//         }
//     }
// }
